/**
 * <p>Copyright:Copyright(c) 2019</p>
 * <p>Company:Professional</p>
 * <p>Package:com.cesgroup.zw.spring.boot.echarts.component.series</p>
 * <p>File:Sankey.java</p>
 * <p>类更新历史信息</p>
 * @todo chanlong(陈龙) 创建于 Jun 4, 2019 12:32:44 PM
 */
package com.cesgroup.zw.spring.boot.echarts.component.series;

import com.cesgroup.zw.spring.boot.echarts.component.series.parent.AnimationSeries;
import com.cesgroup.zw.spring.boot.echarts.enums.Adjacency;
import com.cesgroup.zw.spring.boot.echarts.enums.Align;
import com.cesgroup.zw.spring.boot.echarts.enums.Orient;
import com.cesgroup.zw.spring.boot.echarts.model.series.SankeyLevel;
import com.cesgroup.zw.spring.boot.echarts.model.series.SankeyLink;
import com.cesgroup.zw.spring.boot.echarts.model.style.LineStyle;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>描述: 桑基图</p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date Jun 4, 2019 12:32:44 PM
 * @version 1.0.2019
 */
@Data @SuppressWarnings("serial")
@EqualsAndHashCode(callSuper = true)
public class Sankey extends AnimationSeries {

	/** 组件离容器上侧的距离，[default: '5%'] */
	private Object top;
	
	/** 组件离容器左侧的距离，[default: '20%'] */
	private Object left;
	
	/** 组件离容器右侧的距离，[default: '20%'] */
	private Object right;
	
	/** 组件离容器下侧的距离，[default: '5%'] */
	private Object bottom;
	
	/** 组件的宽度，[default: null] */
	private Object width;
	
	/** 组件的高度，[default: null] */
	private Object height;
	
	/** 桑基图中每个矩形节点的宽度，[default: 20] */
	private Integer nodeWidth;
	
	/** 桑基图中每一列任意两个矩形节点之间的间隔，[default: 8] */
	private Integer nodeGap;
	
	/** 桑基图中节点的对齐方式，默认是双端对齐，可以设置为左对齐或右对齐，[default: 'justify'] */
	private Align nodeAlign;
	
	/** 布局的迭代次数，用来不断优化图中节点的位置，以减少节点和边之间的相互遮盖，[default: 32] */
	private Integer layoutIterations;
	
	/** 桑基图中节点的布局方向，可以是水平的从左往右，也可以是垂直的从上往下，对应的参数值分别是 horizontal, vertical */
	private Orient orient;
	
	/** 控制节点拖拽的交互，[default: true] */
	private Boolean draggable;
	
	/** 鼠标 hover 到节点或边上，相邻接的节点和边高亮的交互，[default: true] */
	private Adjacency focusNodeAdjacency;
	
	/** 桑基图每一层的设置。可以逐层设置 */
	private SankeyLevel[] levels;
	
	/** 桑基图边的样式 */
	private LineStyle lineStyle;
	
	/** 同data，见SankeyData */
	private Object[] nodes;
	
	/** 节点间的边 */
	private SankeyLink[] links;
	
	/** 同links */
	private SankeyLink[] edges;
	
	public Sankey() {
		this.setType("sankey");
	}
}
